#ifndef OrbFeatureDescriptor_H_
#define OrbFeatureDescriptor_H_
#include "FeatureDescriptor.h"
class OrbFeatureDescriptor : public FeatureDescriptor
{
	public:
	int * descriptor;
	
	OrbFeatureDescriptor();
	OrbFeatureDescriptor(string path);
	OrbFeatureDescriptor(int * feature_descriptor);
	double distance(OrbFeatureDescriptor * other_descriptor);
	void print();
	void store(string path);
	OrbFeatureDescriptor * clone();
	void update(vector<FeatureDescriptor * > * input);
	~OrbFeatureDescriptor();
};

inline ostream& operator << (ostream& os, const OrbFeatureDescriptor& p)
{
	for (int i = 0; i < 32; ++i)
		os << (i == 0 ? "(" : "") << p.descriptor[i] << (i < 31 ? ", " : ")");
	return (os);
}
#endif
